package com.zmn.plat.model.entity.product;

import com.zmn.common.utils.pager.Pages;
import com.zmn.plat.model.entity.category.ServCategAndCategTwoQuery;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * @author tanghongjun
 * @version v1.0
 * @类说明：
 * @modifier tanbiao 20190920 新增产品查询类型
 * @since 2018/10/16 11:30
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class ServProductQuery extends Pages {

    private static final long serialVersionUID = 1L;

    /**
     * 服务项目-收费项
     */
    private Integer productId;

    /**
     * 产品名称（或ID）
     */
    private String name;

    /**
     * 只匹配产品名称
     */
    private String onlyName;

    /**
     * 服务分类ID
     */
    private Integer servCategId;

    private List<Integer> servCategIds;

    /**
     * 产品1级分类ID
     */
    private Integer categOneId;
    private List<Integer> categOneIds;

    /**
     * 产品2级分类ID
     */
    private Integer categId;
    private List<Integer> categIds;

    /**
     * 服务分类ID和产品二级分类集合
     */
    private List<ServCategAndCategTwoQuery> servCategAndCategTwoQueryList;

    /**
     * 公司ID：如果挂到总公司则所有公司都能用，如果挂到子公司，则只能它自己用
     */
    private Integer companyId;

    /**
     * 服务价格类型：1一口价（类似清洗），2维修价（区间价）
     * 全国价为必需设置，设置完才能设置区域价
     */
    private Integer priceType;

    /**
     * 绩效分类ID
     */
    private Integer ficoCtegId;

    /**
     * 单位
     */
    private String unit;

    /**
     * 是否允许外部使用 1否2是
     */
    private Integer outsideUse;

    /**
     * 故障分组ID
     */
    private Integer faultGroupId;

    /**
     * 保修分组ID
     */
    private Integer warrantyGroupId;

    /**
     * 产品对应的属性和属性值对应的ID组合成的字符串
     */
    private String sequence;

    /**
     * 展示平台：1.啄木鸟、2.言而有信、3.川南环保、4.一步生活，如果展示平台有多个，用',''隔开
     */
    private String showPlat;

    /**
     * 产品支持的业务类型，多个用$隔开
     */
    private Integer bizType;

    /**
     * 状态：1停用，2启用
     */
    private Integer status;

    private String creater;

    private String updater;

    private Date createTime;

    private Date updateTime;

    /**
     * 产品类型 1后端产品 2前端产品
     *
     * @author tanbiao
     * @since 2019/9/20
     */
    private Integer showType;

    /**
     * 是否默认产品：1否 2是
     *
     * @author linfeng
     * @since 2020/10/16 11:44
     */
    private Integer defaultType;

    /**
     * 功能描述 :后台产品ID
     *
     * @author tanbiao
     * @since 2019/9/21
     * @modifier
     */
    private Integer backProductId;

    /**
     * 功能描述 :前台产品ID
     *
     * @author tanbiao
     * @since 2019/9/21
     * @modifier
     */
    private Integer showProductId;


    /**
     * 功能描述 :前台产品ID
     *
     * @author tanbiao
     * @since 2019/9/21
     * @modifier
     */
    private Integer tariffProductId;

    /**
     * 服务分类id-一级分类id-二级分类id
     */
    private List<String> unionKeys;

    /**
     * 计价器名称
     */
    private String tariffName;

    /**
     * 计价器状态
     */
    private Integer tariffStatus;
    /**
     * 默认产品
     */
    private Integer general;
    /**
     * 产品ids
     */
    private List<Integer> productIds;
    /**
     * 产品所属二级渠道
     */
    private Integer channelId;

    /**
     * 查询后台产品的标志位，分别有一下三种情况
     * 1 渠道产品+通用产品，此时channelId必须为指定的渠道，productType为null
     * 2 通用产品 此时channelId为空（null）productType为1
     * 3 渠道专属产品，此时channelId必须为指定的渠道，productType为2
     *
     */
    private Integer productType;
    /**
     * 每页显示条数，默认50
     */
    private Integer pageSize = 50;
}